-
Notifications
You must be signed in to change notification settings - Fork 27
STYLE: Cpp linting #300
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
STYLE: Cpp linting #300
Conversation
📊 Code Coverage Report
Diff CoverageDiff: main...HEAD, staged and unstaged changes
Summary
mssql_python/pybind/connection/connection.cppLines 222-231 222 // Limit static buffer growth for memory safety
223 constexpr size_t MAX_BUFFER_COUNT = 100;
224 if (wstr_buffers.size() >= MAX_BUFFER_COUNT) {
225 // Remove oldest 50% of entries when limit reached
! 226 wstr_buffers.erase(wstr_buffers.begin(),
! 227 wstr_buffers.begin() + (MAX_BUFFER_COUNT / 2));
228 }
229
230 wstr_buffers.push_back(wstr);Lines 258-267 258 LOG("Set string attribute successfully");
259 }
260 return ret;
261 } catch (const std::exception& e) {
! 262 LOG("Exception during string attribute setting: " +
! 263 std::string(e.what()));
264 return SQL_ERROR;
265 }
266 } else if (py::isinstance<py::bytes>(value) ||
267 py::isinstance<py::bytearray>(value)) {Lines 272-281 272 // Limit static buffer growth
273 constexpr size_t MAX_BUFFER_COUNT = 100;
274 if (buffers.size() >= MAX_BUFFER_COUNT) {
275 // Remove oldest 50% of entries when limit reached
! 276 buffers.erase(buffers.begin(),
! 277 buffers.begin() + (MAX_BUFFER_COUNT / 2));
278 }
279
280 buffers.emplace_back(std::move(binary_data));
281 SQLPOINTER ptr = const_cast<char*>(buffers.back().c_str());Lines 290-299 290 LOG("Set attribute successfully with binary data");
291 }
292 return ret;
293 } catch (const std::exception& e) {
! 294 LOG("Exception during binary attribute setting: " +
! 295 std::string(e.what()));
296 return SQL_ERROR;
297 }
298 } else {
299 LOG("Unsupported attribute value type");mssql_python/pybind/connection/connection_pool.cppLines 58-67 58 valid_conn = std::make_shared<Connection>(connStr, true);
59 valid_conn->connect(attrs_before);
60 ++_current_size;
61 } else if (!valid_conn) {
! 62 throw std::runtime_error(
! 63 "ConnectionPool::acquire: pool size limit reached");
64 }
65 }
66
67 // Phase 3: Disconnect expired/bad connections outside lockLines 99-108 99 for (auto& conn : to_close) {
100 try {
101 conn->disconnect();
102 } catch (const std::exception& ex) {
! 103 LOG("ConnectionPool::close: disconnect failed: {}",
! 104 ex.what());
105 }
106 }
107 }mssql_python/pybind/unix_buffers.h📋 Files Needing Attention📉 Files with overall lowest coverage (click to expand)mssql_python.pybind.ddbc_bindings.cpp: 70.7%
mssql_python.row.py: 77.9%
mssql_python.pybind.connection.connection_pool.cpp: 78.9%
mssql_python.ddbc_bindings.py: 79.6%
mssql_python.pybind.connection.connection.cpp: 81.2%
mssql_python.connection.py: 82.9%
mssql_python.cursor.py: 83.6%
mssql_python.auth.py: 87.1%
mssql_python.pooling.py: 87.7%
mssql_python.exceptions.py: 92.1%🔗 Quick Links
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request applies C++ linting and code style improvements to the connection implementation files in the mssql_python/pybind/connection directory. The changes focus on code readability, maintainability, and type safety without altering functional behavior.
Key changes include:
- Reformatted long function calls and statements across multiple lines for improved readability with consistent indentation
- Enhanced type safety by replacing
long longwithint64_tand usingreinterpret_castfor pointer conversions - Improved error handling with more descriptive error messages and robust exception handling
Reviewed Changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| mssql_python/pybind/connection/connection.h | Updated include statements and reformatted function signatures for consistency |
| mssql_python/pybind/connection/connection.cpp | Extensive formatting improvements including line splitting, type safety enhancements, and improved error handling throughout |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. The added comments are non-blocking.
… jahnvi/code_linting_cpp
Work Item / Issue Reference
Summary
This pull request refactors the
connection.cppandconnection.hfiles to improve code readability, maintainability, and consistency, while also making minor corrections and clarifications to comments. The changes mainly involve formatting, type usage, and error handling improvements, as well as updating include paths and constructor signatures.Code Formatting and Readability Improvements
getEnvHandle,allocateDbcHandle,commit,rollback, and others inconnection.cpp.Type and Variable Usage Updates
setAttributefromlong longtoint64_tfor clarity and platform consistency.Error Handling Enhancements
Include Path and Constructor Signature Updates
connection.cppandconnection.hfor consistency and to support future platform agnostic changes.ConnectionHandleconstructor signature to improve clarity and maintainability.